Squash and merge
git merge --squashと同じ仕方でPRをmergeする
https://gyazo.com/039f522ae0a1734d322f8c102f596440 https://qiita.com/ko-he-8/items/94e872f2154829c868df#squash-and-merge
Aが本軸(developなど)で、Bがtopic branch
PRの単位で、1つの大きなcommitがmergeされるイメージ
merge commitはつくられない
この方法でmergeした後は、個々のcommitに戻ることは出来ない
squash mergeは非可逆mrsekut.icon
localかremoteに、merge前のbranchが残ってたら見れるが、普通は残さない
そのため、できるだけPRを小さく作るという運用が良いように思う
squash and mergeの良さは、topic branchの中では割と好き放題できること
開発のための試行錯誤でcommitがめちゃくちゃになっても、本軸(developなど)のlogには残らない
ただし、めちゃくちゃすぎるとCode Reviewは大変になりうるmrsekut.icon
review段階ではsquashされていないので
topic branchをそのままpushすると、PRのcommit logに過去のものも表示されることがある
その場合は、squash後にrebaseするをしてから$ git push -fする
この記事の最後でも述べられているが、
topic → developのmergeには、Squash and mergeをよく使う
できるだけPRを小さくすることを心がける
もし、PRが大きくなりすぎた場合は、代わりにRebase and mergeを使うことを検討する
個々のcommitに遡れるようにするため
#??
githubの草はどちらでカウントされる?
100commitを1commitにsquashした場合
参考
GithubでのWeb上からのマージの仕方3種とその使いどころ - Qiita